﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using wp8nop.ViewModel;
using wp8nop.Model;
using Microsoft.Practices.ServiceLocation;
using System.Diagnostics;
using GalaSoft.MvvmLight.Messaging;
using System.Windows.Media;
using System.Collections;
using wp8nop.Common;

namespace wp8nop
{
    public partial class Carrello : PhoneApplicationPage
    {
        CarrelloViewModel vm;

        public Carrello()
        {
            InitializeComponent();

            vm = (CarrelloViewModel)this.DataContext;
            vm.OnOpenDettaglioProdotto += vm_OnOpenDettaglioProdotto;
            this.Loaded += ProdottiList_Loaded;
        }

        void vm_OnOpenDettaglioProdotto(object sender, Model.ProdottoViewModel e)
        {
            OpenDettagioProdotto(e);
        }

        void OpenDettagioProdotto(ProdottoViewModel prod)
        {
            var dettProd = ServiceLocator.Current.GetInstance<DettaglioProdottoViewModel>();
            NavigationService.Navigate(new Uri("/DettaglioProdotto.xaml", UriKind.Relative));

            Debug.WriteLine("Invio messaggio");
            Messenger.Default.Send(new NotificationMessage<ProdottoViewModel>(prod, "SelectedProduct"));
        }
        
        void ProdottiList_Loaded(object sender, RoutedEventArgs e)
        {

        }

        private void Elimina_Click(object sender, RoutedEventArgs e)
        {
            vm.EliminaProdotto((ProdottoViewModel)((MenuItem)sender).Tag);
        }

        private void Diminuisci_Click(object sender, RoutedEventArgs e)
        {
            vm.DiminuisciQuantita((ProdottoViewModel)((MenuItem)sender).Tag);
        }

        private void Aumenta_Click(object sender, RoutedEventArgs e)
        {
            vm.AumentaQuantita((ProdottoViewModel)((MenuItem)sender).Tag);
        }

        private void Acquista_Click(object sender, RoutedEventArgs e)
        {
            if (vm._dataService.Carrello.Count == 0)
            {
                Toast.SendToast("Il carrello è vuoto");
                return;
            }
            if (App.IDUtente == 0)
            {
                NavigationService.Navigate(new Uri("/Login.xaml", UriKind.Relative));
            }
            else
            {
                NavigationService.Navigate(new Uri("/SceltaPagamento.xaml", UriKind.Relative));
            }
        }
    }
}